package com.lanou3g.code0408.constructor;

/**
 * Created by dllo on 18/4/8.
 */

// .java => 编译 => .class文件 => JVM执行.class

public class Dog {
    private String name;
    private int age;

    /*
    构造方法:
    1. 没有返回值: 根本就没有写 返回值的类型
    2. 方法名 与 类名相同

    构造方法 只能被 new 这个关键字调用
    当 new对象的时候,其实就是在调用构造方法
    例如: new Dog(); => 就是在调用
            public Dog(){}这个构造方法;
            new Dog("AA") => 其实就是在调用
            public Dog(String name){}这个构造方法
     */

    public Dog(String name) {
        this.name = name;
        System.out.println("这里是String参数的构造方法");

    }

    /*
    没有任何参数,方法体也是空的构造方法

    1. 如果我们没有写 任何一个构造方法,那么系统会送我们一个
    无参的构造方法(我们看不见)

    2. 只要我们写了任何一个构造方法,那么系统送我们的这个
    无参的构造方法 就会被收回
     */
    public Dog() {
        System.out.println("这里是没有参数的构造方法");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
